]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
panel: Update the hot corner when the panel box allocation changes
authorJasper St. Pierre <jstpierre@mecheye.net>
Mon, 3 Dec 2012 20:56:18 +0000 (15:56 -0500)
committerJasper St. Pierre <jstpierre@mecheye.net>
Mon, 3 Dec 2012 21:09:46 +0000 (16:09 -0500)
This fixes the missing hotcorner in the overview.

https://bugzilla.gnome.org/show_bug.cgi?id=689537

js/ui/layout.js
js/ui/panel.js

index 3a20f923cbc7451f4aa79d72b2e5dba2fbde7c98..8e59383aa4ae76404cc94db769185582da121008 100644 (file)
@@ -124,7 +124,7 @@ const LayoutManager = new Lang.Class({
         this.addChrome(this.panelBox, { affectsStruts: true,
                                         trackFullscreen: true });
         this.panelBox.connect('allocation-changed',
-                              Lang.bind(this, this._updatePanelBarriers));
+                              Lang.bind(this, this._panelBoxChanged));
 
         this.trayBox = new St.Widget({ name: 'trayBox',
                                        layout_manager: new Clutter.BinLayout() }); 
@@ -256,6 +256,11 @@ const LayoutManager = new Lang.Class({
                               this.bottomMonitor.width, this.bottomMonitor.height);
     },
 
+    _panelBoxChanged: function() {
+        this.emit('panel-box-changed');
+        this._updatePanelBarriers();
+    },
+
     _updatePanelBarriers: function() {
         if (this._leftPanelBarrier)
             global.destroy_pointer_barrier(this._leftPanelBarrier);
@@ -387,6 +392,7 @@ const LayoutManager = new Lang.Class({
     },
 
     _startupAnimationComplete: function() {
+        this.emit('panel-box-changed');
         this._chrome.thawUpdateRegions();
     },
 
index 7ff528446557f6e6b775bad1c0ab20faab8dcdb9..3e7f38b65b6daaa39c2b89bd0964ff633170d770 100644 (file)
@@ -655,6 +655,13 @@ const ActivitiesButton = new Lang.Class({
         }));
 
         this._xdndTimeOut = 0;
+
+        // Since the hot corner uses stage coordinates, Clutter won't
+        // queue relayouts for us when the panel moves. Queue a relayout
+        // when that happens.
+        Main.layoutManager.connect('panel-box-changed', Lang.bind(this, function() {
+            container.queue_relayout();
+        }));
     },
 
     _containerGetPreferredWidth: function(actor, forHeight, alloc) {